package com.ejlchina.cashier;

import com.alibaba.fastjson.JSONObject;

/**
 * 收款器
 * 
 * @author Troy.Zhou
 *
 */

public interface Cashier {

	

	/**
	 * 初始化
	 * @param payStarter 收款启动器
	 */
	void init(CashStarter payStarter);
	

	/**
	 * 收款
	 * @param cashReq 收款请求
	 * @return 收款结果
	 */
	CashRes cash(CashReq cashReq);
	

	/**
	 * 
	 * @return 业务名称
	 */
	String getBizName();
	
	
	/**
	 * 
	 * 收款启动器
	 * 
	 * @author Troy.Zhou
	 *
	 */
	public static interface CashStarter {

		
		/**
		 * 开始收款
		 * @param bizName 业务名称
		 * @param cashReq 收款请求
		 * @return 收款结果
		 */
		JSONObject startPay(String bizName, CashReq cashReq);
		
		
	}
	
}
